C# WPF的MVVM模式中使用消息的订阅和发布
定制了一个项目模板,包含WPF + CommunityToolkit.Mvvm + Behaviors + PubSub + HandyControls
都已经配置好了,直接导入VS模板即可
C# WPF的MVVM模式中使用消息的订阅和发布
回复#1 @admin :
WPF其实和WinForm非常不一样了,尤其是用了MVVM模式以后要做到完全的前后端分离,不通过消息的订阅和发布几乎就不可能在界面之间交互了。
其实
C# WPF的MVVM模式中使用消息的订阅和发布
C#的WPF开发中经常会遇到需要在不同窗口或者界面间传递消息,如果要严格遵循Model-View-ViewModel前后台分离的原则来开发的话,数据的跨界面传输就会比较麻烦,尤其涉及到多个不同界面间的相互交互。
PubSub库的订阅和发布可以比较方便的解决这个问题。
1. Model: 消息模型
using CommunityToolkit.Mvvm.ComponentModel; namespace WpfPubSubDemo { public partial class MC# WPF 实现原神官网立绘图画显示效果
还可以做背景变换的动画,把变化速度调慢时候当桌面时缓慢变化。
WPF应该有更优雅的动画制作语句,不过我只叠加了一张图片,然后调了调透明度
private void RunAnimation() { Application.Current.Dispatcher.InvoC# WPF 实现原神官网立绘图画显示效果
旁边可以加个切换城市列表加载更多人物立绘
定制化RadioButton
<!--城市列表--> <ListBox x:Name="cityListBox" Grid.Row="0" Grid.ColumnC# WPF 实现原神官网立绘图画显示效果
WPF对于图片的渲染效果要比WinForm出色很多,模仿原神官网立绘图画显示效果
C#千万级数据实现条件筛选及分页功能
C#的Linq实现大数据(千万级别)的筛选性能表现还是很不错的。
WPF界面:
<Window x:Class="WpfDemo01.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schC#开发Android移动应用系列之TabbedPage页面设置
图片过大,上传不了了
可查看:
https://note.youdao.com/s/cPrD2rcM
C#开发Android移动应用系列之TabbedPage页面设置
之前演示了通过点击按钮实现页面跳转,其实Xamarin支持TabbedPage实现各子页面的调度。
修改MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/fC#开发Android移动应用系列之调用手机摄像头拍照
继续分享通过Xamarin开发Android应用的案例:调用手机摄像头拍照
新建一个内容页Page3并通过路由注册,方法与之前相同,略过
在内容页Page3.xaml上放一个Image和一个Button
<?xml version="1.0" encoding="utf-8" ?> <C#开发Android移动应用系列之数据绑定
数据绑定也可以用CollectionView展示,比如这样
Page2.xaml.cs
C#开发Android移动应用系列之数据绑定
在上述第3部分:在内容页Page1.xaml.cs的代码中,设置数据模型并将其作为BindingContext中,
基金净值估算程序 C#实现
回复#8 @鸿湖重工业株式会社 :
这个还要看你调用的dll,有些比如申明了允许外部调用,有些可能是私有的,还有些可能是受保护的,或者是只读或者只写的属性。
例如,上面的这个类
public class JiJin { public string _Code { get; private set; } public string _Name { get; private set; }基金净值估算程序 C#实现
换了个异步写法,调用天天基金的api接口并解析json列表
var myjj = new JiJin("002910"); myjj.Adjustment = 0.9; myjj.GetStocks(); myjj.Calculate(); myjj.Dump(); public class JiJin { public string _Code { get; private set; } public string _Name { get; private set; } publi基金净值估算程序 C#实现
改进了一下,直接输入基金代码可以自动查询持仓并计算净值。
通过解析天天基金的网页进行计算。
var jj = new JiJin("012414"); jj.GetChiCang(); jj.Calculate(); $"{DateTime.Now.ToShortDateString()} 基金{jj.Name}的净值估计{jj.TotalChange*100}%".Dump(); class JiJin { public string Name { get; private set; }c#中通过 Easy.MessageHub实现类似aardio的subsciribe和publish功能
回复#11 @admin :
aardio里的subcribe应该是老大写的语法糖,底层的话肯定还是有个关联的逻辑
c#中通过 Easy.MessageHub实现类似aardio的subsciribe和publish功能
回复#7 @admin :
其实委托用熟了还是很方便的,常规的步骤:
创建委托方法 -> 订阅功能
创建委托(哪里使用,哪里创建)
使用委托 -> 发布功能
把委托和委托方法进行关联